In the field of storage network systems, the current standards require that speed negotiation be performed between two communicating parties, such as a pair of storage network elements, before communication is enabled. In the standard-based rate negotiation process, the two communicating parties attempt to form connections at their highest commonly supported link rate by having one party determine the other party's supported link rates. However when a storage network system is composed of multiple pairs of network elements achieving a common link across all network element pairs can result in a process known as rate thrashing.
Rate thrashing begins when each of the network element pairs speed negotiates to their own highest commonly supported rates, and these rates are not equivalent across all network element pairs in the storage network system. The storage network system must then re-initiate speed negotiation on some or all of the network element pairs in hopes of achieving an equivalent rate across all network element pairs in the storage network system. The storage network system may have to re-initiate speed negotiation multiple times and rate thrashing occurs.
For applications where multiple SAS/SATA network element pairs are used within a SATA Port Selector, an embedded processor or control unit usually ensures that each network element pair is operating at the same link rate. This operation is performed by allowing all the network element pairs to speed negotiate independently, followed by a check for consistency and then re-initiating speed negotiation with a set of constrained link rates.
However, the traditional SATA Port Selector causes problems when operating within a SAS topology. A SAS initiator device or expander device connected to a SATA Port Selector may require that the SATA Device connected to the SATA Port Selector remain in the SATA HOLD state until such time as the SATA Port Selector can speed negotiate to all network elements without rate thrashing. Furthermore when a SAS link reset is performed, the SATA Device should normally come out of SATA HOLD state, but speed negotiation and rate thrashing may undesirably put the SATA Device back into the SATA HOLD state.
It is, therefore, desirable to provide a novel method of rate snooping in a storage network system.